package com.lzw.breezeNovel.webApp.service.novel;

import com.lzw.breezeNovel.model.entity.query.PaginationResultQuery;
import com.lzw.breezeNovel.model.entity.query.Search;
import com.lzw.breezeNovel.webApp.vo.novel.BookVo;

import java.util.List;

/**
 * @author 清风明月
 * @Package com.lzw.breezeNovel.webApp.service
 * @date 2025/3/2
 * @description 小说的服务类
 */
@SuppressWarnings("all")
public interface BookService {

    /**
     * 获取限时免费的小说
     * @return
     */
    List<BookVo> getFreeBooks();

    /**
     * 获取最新小说
     * @return
     */
    List<BookVo> getNewBooks();

    /**
     * 获取最新小说分页
     * @param page
     * @param pageSize
     * @return
     */
    PaginationResultQuery<BookVo> getNewBooksByPage(Integer page, Integer pageSize);

    /**
     * 获取小说详情
     * @param type
     * @return
     */
    List<BookVo> getBooksByType(String type);

    /**
     * 根据小说的类型获取数据
     * @param type
     * @param page
     * @param pageSize
     * @return
     */
    PaginationResultQuery<BookVo> getBooksByTypeByPage(String type, Integer page, Integer pageSize);

    /**
     * 根据小说的id获取小说详情
     * @param bookId
     * @return
     */
    BookVo getBookById(Long bookId);

    /**
     * 模糊查询信息
     * @param keyword
     * @return
     */
    PaginationResultQuery<BookVo> searchBook(Search search);
}
